home *** CD-ROM | disk | FTP | other *** search
- The HPACK Purity Test - 134 Question Version
- ============================================
- Updated 19/09/92
-
- Version Tested: [ 0.78 ] Date/Time tested: [ / /92, : ]
- --------------- -----------------
-
- Basic Functions:
- ----------------
-
- 1.[ ] [A] - Add files to archive. Create a new archive and add files to it.
- 2.[ ] [X] - Extract files from an existing archive. Files extracted should
- have the modification date of the original file.
- 3.[ ] [V] - View list of files inside archive.
- 4.[ ] [T] - Test integrity of files within archive.
- 5.[ ] [P] - Extract files within archive to screen.
-
- Extended Basic Functions:
- -------------------------
-
- 6.[ ] [A] - Add more files to an existing archive.
- [D] - Delete files from an archive. Cases for deletion:
- 7.[ ] 1. Delete first file in archive.
- 8.[ ] 2. Delete file(s) from middle of archive.
- 9.[ ] 3. Delete last file in archive.
- 10.[ ] 4. Delete multiple blocks of files.
- [F] - Freshen files in archive. Cases for freshen:
- 11.[ ] 1. Freshen first file in archive.
- 12.[ ] 2. Freshen file(s) from middle of archive.
- 13.[ ] 3. Freshen last file in archive.
- 14.[ ] 4. Freshen multiple blocks of files.
- [R] - Replace files in archive. Cases for replace:
- 15.[ ] 1. Replace first file in archive.
- 16.[ ] 2. Replace file(s) from middle of archive.
- 17.[ ] 3. Replace last file in archive.
- 18.[ ] 4. Replace multiple blocks of files.
- [U] - Update files to archive. Cases for update:
- 19.[ ] 1. Update first file in archive.
- 20.[ ] 2. Update file(s) from middle of archive.
- 21.[ ] 3. Update last file in archive.
- 22.[ ] 4. Update multiple blocks of files.
-
- Options:
- --------
-
- 23.[ ] -0 - Store files without compression. All files should be added without
- any compression being attempted.
- -a - Store attributes. 4 cases:
- 24.[ ] 1. Store attributes on archiving.
- 25.[ ] 2. Restore attributes on dearchiving.
- 26.[ ] 3. Store directory attributes with -p flag.
- 27.[ ] 4. Restore directory attributes with -p flag (not possible under
- MSDOS).
- -b - Specify base path to work off. Two cases:
- 28.[ ] 1. Adding to archive: All files should be treated as being off
- the given base path.
- 29.[ ] 2. Extracting from archive: All files should be extracted to this
- base path.
- -c - Encrypt data. See special section on encryption below.
- -d - Directory options. Six cases (three for store paths, three for
- extra options):
- 30.[ ] 1. The View option should show the files by the directories they
- are in.
- 31.[ ] 2. The Extract option should create the directories before the
- extraction is done.
- 32.[ ] 3. The Test, Display options should show the full path for the
- files being processed.
- 33.[ ] 4. Add all paths. All paths, even those containing no files,
- should be added to the archive.
- 34.[ ] 5. Extract all paths. All paths, even those containing no files,
- should be extracted from the archive.
- 35.[ ] 5. Add no paths - if the path isn't already in the archive, exit
- with an error message.
- 36.[ ] 6. Incorrect option given: Error message should indicate that an
- incorrect directory option has been given.
- 37.[ ] -e - Error recovery information. This should be written for all files
- specified, and consist of an error ID, the fileheader, and the
- filename.
- -i - Interactive mode - prompt for each file before taking any action.
- 6 cases:
- 38.[ ] 1. Adding to archive.
- 39.[ ] 2. Extracting from archive.
- 40.[ ] 3. Testing/viewing file in archive.
- 41.[ ] 4. Deleting from archive.
- 42.[ ] 5. Freshening to archive.
- 43.[ ] 6. Replacing to archive.
- 44.[ ] 7. Answer 'Y' processes the file being prompted for.
- 45.[ ] 8. Answer 'N' skips the file being prompted for.
- 46.[ ] 9. Answer 'A' processes this and all following files.
- -j - Move files. Four cases:
- 47.[ ] 1. Add/Freshen/Replace/Update with move: Files should be deleted
- after archive is created.
- 48.[ ] 2. Add with move, encryption: Files should be physically
- annihilated not just deleted.
- 49.[ ] 3. Extract with move: Files should be deleted from archive after
- extraction.
- 50.[ ] 4. If move on a unit-compressed or encrypted archive is given, an
- error message should be printed.
- 51.[ ] -k - Overwrite an existing archive. Existing archive should be deleted
- and a new one created.
- -l - Add security information. 2 cases:
- 52.[ ] 1. Add security information for entire archive.
- 53.[ ] 2. Add security information for individual files.
- 54.[ ] Individually secured files should be shown as such when the View
- option is used.
- 55.[ ] Secured files/archives should be tested for integrity when the
- Extract/Test/Display options are used.
- -m - Multipart archives.
- 56.[ ] 1. Create multipart archive. When the disk is full, the multipart
- trailer should be added and a new disk requested.
- 57.[ ] 2. Segment size of <512 bytes: If the segment is less than 512
- bytes long, it should be deleted and a new (emptier) disk
- requested).
- 58.[ ] 3. If a multipart archive contains only one segment, it should be
- stored as a normal archive.
- 59.[ ] 4. If the trailer would be split over two disks, the entire
- trailer should be moved to a new disk and the seperate trailer
- flag set.
- 60.[ ] 4. On reading an archive the last segment should be requested if a
- multipart archive is detected.
- 61.[ ] 5. Currently unimplemented: Once the last segment is acquired
- HPACK should read the directory information (moving to the
- previous disk if the seperate trailer flag is set).
- 62.[ ] 6. When files are on seperate disks (eg disk #1, #3, and #8), only
- those disks should be requested; unused disks can be skipped.
- -o - Overwrite on extract options. 6 cases:
- 63.[ ] 1. Overwrite all: All files on extraction should overwrite
- existing files on disk.
- 64.[ ] 2. Overwrite none: No files on extraction should overwrite
- existing files on disk.
- 65.[ ] 3. Overwrite smart: Files on extraction should be given a unique
- name based on the actual name so that they don't clash with any
- file already on disk.
- 66.[ ] 4. Name prompt: The user should be prompted for a new name for
- the file.
- 67.[ ] 6. No option given: The user is asked to confirm overwriting for
- each individual case.
- 68.[ ] 5. Incorrect option given: Error message should indicate that an
- incorrect overwrite option has been given.
- 69.[ ] -r - Recurse subdirectories. All subdirectories below the given one
- should be scanned for files.
- 70.[ ] -s - Stealth mode. All non-error and non-warning type messages should
- be suppressed.
- 71.[ ] -t - Files extracted should have the current date and not the
- modification date.
- -u - Unit-compressed archives. 3 cases:
- 72.[ ] 1. All files should be compressed without the compressor being
- reset. If there are many small, similar files this will
- result in a noticeable increase in compression.
- 73.[ ] 2. Unit-compressed files should be extracted as normal, if any
- files are skipped they should be extracted in test mode as if
- 'T' had been used instead of 'P'.
- 74.[ ] 3. Any attempt to modify a unit-compressed archive should result
- in an error being printed.
- -v - View options. 4 cases:
- 75.[ ] 1. View files only.
- 76.[ ] 2. View list of subdirectories in directories only.
- 77.[ ] 4. Sort files before displaying them.
- 78.[ ] 5. Incorrect option given: Error message should indicate that an
- incorrect view option has been given.
- -w - Archive comment options. 4 cases:
- 79.[ ] 1. Files added with the -w option should inhabit their own
- namespace and not clash with existing files.
- 80.[ ] 2. Delete, freshen, replace options should not work on comment
- files; to work on comment files the -w option needs to be
- given.
- 81.[ ] 3. The view files option should display comment files (if
- possible) or skip them (if the format cannot be handled).
- Comment files should not be included in the count of data
- files.
- 82.[ ] 4. Text comments when displayed should be converted to ASCII-only
- (or the local equivalent on the machine being used), be word
- wrapped at the current screen width, and recognise the simple
- formatting options given in HPACKEXT.DOC.
- -x - Extract options. 7 cases:
- 83.[ ] 1. Translate LF -> Local EOL delimiter.
- 84.[ ] 2. Translate CR -> Local EOL delimiter.
- 85.[ ] 3. Translate CRLF -> Local EOL delimiter.
- 86.[ ] 4. Treat 1 or 2-digit hex value as EOF symbol; xlate this to the
- local EOL delimiter.
- 87.[ ] 5. Translate from EBCDIC -> ASCII.
- 88.[ ] 6. Translate from Pr1ime ASCII (high bit set so they could save a
- 75c IC in their serial driver) -> normal ASCII.
- 89.[ ] 7. Translate from ASCII -> ASCII.
- 90.[ ] -z - System-specific special options. Print error message if no
- options, otherwise results are system-specific.
-
- Complex options:
- ----------------
-
- -rd - Recurse and store paths. 3 cases:
- 91.[ ] 1. The View option should show the files by the directories they
- are in.
- 92.[ ] 2. The Extract option should create the directories before the
- extraction is done.
- 93.[ ] 3. The Test, Display options should show the full path for the
- files being processed.
- -rd with Add - 2 cases:
- 94.[ ] 1. Added directories should be added to directories in archive if
- they don't already exist.
- 95.[ ] 2. When directories are added to the middle of the directory tree,
- it should be rearranged into an inorder traversal with
- contiguous directory indices before being written to disk.
- 96.[ ] -ard with Add - Add directories with flags. When directory tags are
- added to the middle of the directory tree, the directory tags
- should be reordered when the directory tree is rebuilt.
- More complex options are assumed OK provided they have been checked for
- the individual-archive cases.
-
- Listfiles:
- ----------
-
- 97.[ ] Args beginning with an @ should be treated as listfiles.
- 98.[ ] Comments and leading whitespace in a listfile should be ignored.
- 99.[ ] A warning is printed for over-long paths/illegal chars.
- 100.[ ] Valid paths are added to the argument list as if they had been entered
- from the command-line.
- 101.[ ] If warnings were issued, once the listfile has been processed or the
- number of warning passses a certain threshold, exit with an error
- count.
-
- Encryption/Authentication:
- --------------------------
-
- Individual encryption options:
- 102.[ ] -c The user should be asked for a password of between 8 and 80 chars,
- -ca and the entire archive should be encrypted.
- 103.[ ] -ci The user should be asked for a password of between 8 and 80 chars,
- and individual files should be encrypted.
- 104.[ ] -cs The user should be asked for a secondary password as well as the
- main password and the archive directory and file data encrypted
- seperately using the two passwords.
- 105.[ ] -cpa The given userID should be used to public-key encrypt the entire
- archive.
- 106.[ ] -cpi The given userID should be used to public-key encrypt individual
- files.
- 107.[ ] -cps The given userID should be used as a secondary ID as per -cs.
- 108.[ ] Individually encrypted files should be show as encrypted when using
- the View option.
- 109.[ ] Individually encrypted files which are also secured should be
- shown as encrypted and secured when using the View option.
- 110.[ ] Decryption with -c for a conventional-key encrypted archive should
- request the decryption password from the user.
- 111.[ ] Decryption with -c for a dual-conventional-key encrypted archive
- should request the secondary key from the user.
- 112.[ ] Decryption with -c for a public-key encrypted archive should
- require no password from the user since the key management is
- automatic.
- UserID handling:
- 113.[ ] If a list of comma-seperated userID's is given, one PKE packet per
- userID should be created to allow decryption by multiple
- recipients.
- 114.[ ] If a userID is given in hex, the hex fragment should be matched
- against the keyID rather than the userID.
- 115.[ ] If the secret key is encrypted with an algorithm HPACK can decrypt,
- the user should be given three attempts at a decryption password to
- decrypt the key.
- Error handling:
- 116.[ ] Encrypted individual files should be skipped on Extract/Test/
- Display if no -c option is given.
- 117.[ ] Encrypted archives should be skipped if no -c option is given.
- 118.[ ] If no userID is given for public-key encryption, an error message
- about the missing userID should be printed.
- 119.[ ] If a wrong userID is given for public-key encryption, an error
- message about the userID not being found on the keyring should be
- printed.
- 120.[ ] Decryption with the wrong conventional-key password should result
- in a warning about a possibly incorrect password and give the
- user the option of quitting.
-
- Error Handling and Misc:
- ------------------------
-
- 121.[ ] Wildcards should work for archives, files, and listfiles.
- 122.[ ] A help screen should be displayed if HPACK is invoked with no args.
- 123.[ ] Detection of non-HPACK archives: An error message should be printed.
- 124.[ ] Adding an archive to itself: The archive should be skipped. Care
- should be taken to ensure this works with aliased pathnames, for
- example /A/B/C and ../C may be the same file.
- 125.[ ] On extraction, a file with the name of the directory tp be extracted
- already exists: The directory should be skipped along with all files
- and directories in it, and a warning issued.
- 126.[ ] Unknown command: Indicate via an error message.
- 127.[ ] Data errors: A warning message should be printed in the case of
- corrupted data.
- 128.[ ] -k with [D], [R], [F], [U] - Error message should indicate that the
- archive to change would be deleted.
- 129.[ ] Disk full (without multipart archive specified) and similar errors:
- The original archive should be restored fully, all temporary files
- deleted, and HPACK should exit with an error message.
- 130.[ ] User interrupt: Exit with error message.
- 131.[ ] Command results in no action to take: Indicate to the user via an
- error message.
- 132.[ ] No files in archive: HPACK should correctly handle the case of there
- being only directories (but no files) in an archive.
- 133.[ ] At least two Easter Egg features are included in the executable, none
- of which should be easily found.
- 134.[ ] The program has been used for at least 10 minutes by 'ward. This
- ensures the code is both crash-proof and idiot-proof :-).
-